package br.net.atasacramental.membro.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.Formula;
import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "MEMBRO")
public class Membro {

	@Id
	@GenericGenerator(name = "seq_membro", strategy = "increment")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_membro")
	@Column(name = "ID_MEMBRO")
	private int idMembro;
	@Column(name = "NOME")
	private String nome;
	@Column(name = "OBS")
	private String obs;
	@Column(name = "SEXO")
	private String sexo;
	@Column(name = "TELEFONE")
	private int telefone;
	@Column(name = "CELULAR")
	private int celular;
	@Column(name = "ID_STATUS")
	private int idStatus;
	@Column(name = "ID_ORGANIZACAO")
	private int idOrganizacao;
	@Formula("(SELECT  r.MOMENTO  FROM DISCURSO d,REUNIAO r WHERE d.ID_REUNIAO = r.ID_REUNIAO and d.ID_MEMBRO = ID_MEMBRO ORDER BY r.MOMENTO DESC LIMIT 0,1)")
	private Date dtUltimoDiscurso;
	@Formula("(select IFNULL(o.DESCRICAO,'') from ORGANIZACAO o where o.ID_ORGANIZACAO = ID_ORGANIZACAO)")
	private String dsOrganizacao;
	
	public final static int ATIVO = 1;
	public final static int INATIVO = 2;

	public Membro() {
	}

	public Membro(String nome, String obs) {
		this.nome = nome;
		this.obs = obs;
	}

	public Membro(String nome, String obs, String sexo) {
		this.nome = nome;
		this.obs = obs;
		this.sexo = sexo;
	}

	public int getTelefone() {
		return telefone;
	}

	public void setTelefone(int telefone) {
		this.telefone = telefone;
	}

	public int getCelular() {
		return celular;
	}

	public void setCelular(int celular) {
		this.celular = celular;
	}

	public int getIdOrganizacao() {
		return idOrganizacao;
	}

	public void setIdOrganizacao(int idOrganizacao) {
		this.idOrganizacao = idOrganizacao;
	}

	public int getIdMembro() {
		return this.idMembro;
	}

	public void setIdMembro(int idMembro) {
		this.idMembro = idMembro;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome.toUpperCase();
	}

	public String getObs() {
		return this.obs;
	}

	public void setObs(String obs) {
		if (obs != null) {
			this.obs = obs.toUpperCase();
		} else {
			this.obs = obs;
		}
	}

	public String getSexo() {
		return this.sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	public int getIdStatus() {
		return idStatus;
	}

	public void setIdStatus(int idStatus) {
		this.idStatus = idStatus;
	}

	public Date getDtUltimoDiscurso() {
		return dtUltimoDiscurso;
	}

	public void setDtUltimoDiscurso(Date dtUltimoDiscurso) {
		this.dtUltimoDiscurso = dtUltimoDiscurso;
	}

	public String getDsOrganizacao() {
		return dsOrganizacao;
	}

	public void setDsOrganizacao(String dsOrganizacao) {
		this.dsOrganizacao = dsOrganizacao;
	}
	
}
